前幾天介紹的都是一些概念和使用者介面的介紹,從今天會開始來介紹一些實際上網時的一些封包長相,今天要帶大家來看的就是大家常用的HTTP協定。
HTTP的全名是超文本傳輸協定(HyperText Transfer Protocol, HTTP),簡單來說就是瀏覽網頁時,如果是非加密的連線就是HTTP,大家應該也知道如果網站沒有使用加密連線的協定(HTTPS)的話,很可能會造成在這個網站中所傳輸的資料外洩,所以如果網站要你填寫一些個人資訊或帳號密碼等的時候,記得先檢查網站是使用HTTP或是HTTPS的協定,如果是使用HTTP的網站就千萬不要在上面填寫機敏訊息,別人只要用中間人攻擊(Man-in-the-middle attack,MITM)等方式就可以輕易取得你在這個網站上填寫送出的所有資訊,這邊也稍微用我擅長的小畫家畫風來解釋一下中間人攻擊對於HTTP或HTTPS會造成怎樣的狀況。
首先在一般沒有遭受攻擊的狀況下,小美到一個購物網站上去購物時,如果購物網站有提供HTTPS加密連線,小美輸入的任何資料在傳輸回伺服器的時候就會是加密的狀態,但如果購物網站提供的是沒有加密連線的HTML,小美輸入的資料在回傳回去時就會是以明文的方式傳回去。
如果這個世界上沒有壞人的話就沒差,可惜這世界上壞人很多,所以就有些人會想盡方式來竊取別人的資料,中間人攻擊就是其中一個方法,壞人只要想辦法在小美跟購物網站之間的任一節點進行封包側錄,就可以擷取到小美跟購物網站間的所有封包,這樣一來,如果使用HTTP連線所傳送的明文資訊就很容易被壞人拿去盜用身分,甚至可以拿同樣的帳密去嘗試其他常用社群網站,因為很多人喜歡在每個網站都使用一樣的帳號密碼。但如果使用的是HTTPS連線,壞人就算拿到了封包資料也沒用,因為這些資料是經過加密的,對壞人來說就是一串亂碼,除非有解密方法,否則他也看不懂內容是什麼。
這也就是為什麼現在一直呼籲大家在網站上送出資料前一定要先確認網站是不是用HTTPS的原因,不過老實說,某些版本的HTTPS通訊協定也是有漏洞可以讓壞人破解加密方式,所以還是有資料外洩的風險,資安的世界真麻煩。
好,所以HTTP的封包到底是長什麼樣子呢?這次以某個線上家教網站作為例子,他們的網站只支援HTTP但不支援HTTPS的連線,我們就來看看我們送出的登入訊息會長得什麼樣子。
首先,打開Wireshark選取上網的網路介面後開始擷取封包,接著,連到該線上家教的會員登入頁面,並在帳號輸入test@cc.cc,密碼輸入test,接著按下送出。
接著趕快回到Wireshark的畫面來看看收到什麼東西了,為了專注觀察走HTTP協定的封包,可以在規則過濾欄位輸入http後按下enter,畫面就只會顯示走HTTP協定的封包,如下面的畫面,同時也看到我們已經收到了5個走HTTP協定的封包。
每個欄位代表的意思則如下圖。
111.XXX是我的IP,210.XXX則是該網站的IP,也就是說這幾個封包就是我們在這個網上操作時時所產生的封包。
看一下中間的封包詳細內容,這個部分就是告訴你現在點選的這個封包,他在OSI各層中傳了什麼資料,也很建議有興趣的話可以實際去比對這些資料分別是在OSI的哪幾層中傳送的資料,這樣遠比死背書上7層是在幹嘛來的有用多了。
接著在封包上按右鍵,選取Follow> TCP Stream,就可以看到我們上了這個網站後的完整TCP三向交握串流封包紀錄,因為封包可能會切為多個傳送,所以點選後也可以看到完整的TCP串流封包清單,以及跳出以ASCII編碼呈現的請求及回覆封包內容。
眼尖的你,可能發現剛剛的Follow還有另一個選項叫做HTTP Stream,如果是選擇這個選項的話,Wiresahark就只會跳出我們所選擇的HTTP串流封包中與HTML有關的訊息內容,而不會顯示請完整的TCP封包。
慢著,剛剛的圖片上……
我們輸入的帳號跟密碼就這樣就被人看光光啦!!
如果你找不到在哪裡,我幫你把圖片放大一點。
是不是很棒呢,假設你在公共場所裡使用公開的免費Wifi,這時候有一個人在旁邊偷偷把所有流經免費Wifi的流量都擷取下來看,你的帳號密碼就無私的奉獻出來囉。
好了,今天的介紹到這邊結束,明天會再介紹更多的非加密連線,以及加密連線的封包會長什麼樣子,就敬請期待囉。
如果 http 版本是 1.1
然後網站是用 https ,再利用 wireshark 的 SSL 工具去解開,能否看到機密資訊 ?
你好,據我所知,如果要使用Wireshark的SSL解密工具,必須要有該SSL憑證的私鑰才有辦法解開並看到封包裡面的資訊,如果沒有私鑰的話就無法解開,請問你指的是這個嗎?
之前常聽說去網咖上網容易被盜帳密是這個關係呀...長知識了
您的繪圖風格真的很淺顯易懂,期待下次的圖^ ^
你好,我對我的小畫家畫風也很自豪,而且這樣就不用擔心版權了,除非有人畫的跟我ㄧ樣醜,很棒吧!
去網咖上網容易被盜帳密,有可能有中間人攻擊沒錯,更重要的是在未加密(HTTP)網站上輸入敏感資料,另外看看是否有鍵盤側錄等軟體在執行吧@@
沒錯沒錯,隨時注意電腦裡是不是有不明的軟體在執行或是不明外連連線也是很重要的!
請問要怎麼知道有沒有鍵盤側錄軟體在執行?
可以觀察電腦是不是有異常對外連線,或是背景有沒有不明軟體在執行。如果有異常連線,可以用wireshark去收流量,看是不是有將一些電腦資料傳出去的狀況;如果有不明軟體在執行的話,就要確認軟體是不是有問題。
其實不論是不是鍵盤側錄軟體或是其他惡意軟體,都有機會可以用這些方式來找出來喔~
hi
我想請問,若http封包有很多個,我要如何知道哪個封包中有我輸入過的帳密?
我要一個一個找到天荒地老嗎?
嗨你好,抱歉之前漏掉留言通知所以晚回了。
可以使用搜尋功能來找到你要的字串喔,字串可以是輸入帳密的網站或帳密本身的文字都可以,搜尋方法可以參考以下這篇:https://ithelp.ithome.com.tw/articles/10196378
另外其實log這種東西,多看才會比較有概念,所以如果可以真的一條一條看下去看懂看熟的話,也是可以學到不少東西的喔!